PHP 中使用 Curl 抓取网络资源 - sbw Blog

PHP 中使用 Curl 抓取网络资源

来源: 石博文博客 | 浏览: 6272 | 评论: 0 发表时间: 2013-09-28

PHP的Curl库用于获取网络上的资源,就像模拟平时打开浏览器那样,使用它可以方便的抓取到网页上的信息,同时,这个库也提供了多种设置,能够设置各种HTTP协议中的参数.使用CURL,你可以完全模拟用户在网页上登录,浏览,发送信息,写出各种脚本.



检查PHP是否加载CURL

在PHP的主配置文件 php.ini 中,确保打开了curl功能.


第一个示例

下面来使用curl抓取石博文博客的主页 http://blog.sbw.so


上面的这段代码就能够获取到一个页面的源代码,再配合PHP强大的正则表达式,就可以很方便的从页面中提取出一些数据.当然,如果在url地址后面加上参数,就可以以get方法提交参数.


以post方式提交数据

为了一次性提交大量数据,同时也为了更加保密,通常的做法是使用post方式提交数据,使用curl库,也可以很方便的模拟post方式提交.假设将要提交的数据以关联数组的形式存放在数据$data中.


上面的代码中,第一行表明了要以post方式提交数据,第二行就是一个以关联数组存放的数据对,当这个请求发出时,$data中的数据会自动的以post请求的格式发出.


设置User-Agent,Cookie与Referer

通常,一个网站记录用户的在线状态是用Cookie信息来记录的,也用User-Agent与Referer来判断来访者有没有权限读取相应信息,比如"防盗链"功能,就是验证HTTP头中的Referer信息来进行判断的.curl也提供了方法来让我们修改这些信息,方法如下:


模拟登录百度帐号

由博主编写的"百度贴吧签到系统"就广泛使用curl模拟用户登录与签到,其中的登录部分包含了curl库在平常使用中的大多数常用例子,而且,本系统是完全开源的,可以在这里(Github)看到代码.


其它函数

除了上面提到的一些常用的方法,PHP的curl库还提供了如ssl连接,文件上传(put)方法等等各种函数,可以在PHP官方的手册页面查找相关介绍:

PHP文档-Curl


PHP

没有人评论过此文,还不快抢个沙发
  • 昵称: *
  • 邮箱:
  • 网址:
  • 记住我的信息
  • Color
  • Red
  • Blue
  • Code
  • bash
  • cpp
  • css
  • java
  • js
  • perl
  • php
  • python
  • ruby
  • sql
  • xml